#include "../header.h"

/**
 * @函数原型: int gethostname(char *name, size_t len);
 * @函数功能: 获取主机名称
 * @参数说明: 
 * @       参数1: name 存储主机名
 * @       参数2: 长度
 * @       参数3: 
 * @返回值: 成功返回0 失败返回 -1、
 * @param {int} argc
 */

/**
 * @函数原型: struct hostent *gethostbyname(const char *name);
 * @函数功能: 通过域名获取 远端相关信息。
 * @参数说明: 
 * @       参数1: name : 域名
 * @返回值: struct hostent * 结构体指针。
 * @param {int} argc
 */

// struct hostent {
//                char  *h_name;            /* official name of host */
//                char **h_aliases;         /* alias list */
//                int    h_addrtype;        /* host address type */
//                int    h_length;          /* length of address */
//                char **h_addr_list;       /* list of addresses */
//            }
int main(int argc, char const *argv[])
{
    //获取主机名
    char hostname[128] = "";
    int res = gethostname(hostname,sizeof(hostname));
    if (!res)
    {
       printf("主机名获取成功:%s\n",hostname);
    }
    
    //2.通过域名获取主机名。
    struct hostent * hns = gethostbyname("www.souhu.com");
    if(hns == NULL)
        printf("gethostbyname error\n");
    printf("远程主机名字是:%s\n",hns->h_name);
    char ipk[16];
    //循环输出主机别名
    while(*hns->h_aliases != NULL)
    {
        printf("远程主机别名列表是:%s\n",inet_ntop(AF_INET,*hns->h_aliases,ipk,sizeof(ipk)));
        hns->h_aliases++;
    }

    return 0;
}
